package crawler_twitter;


import java.util.LinkedList;
import java.util.List;

import mysql.Connector;
import mysql.DBCache;

import access_twitter.TwitterFactory;
import access_twitter.TwitterWrapper;
import access_twitter.searchItem;


import winterwell.jtwitter.Twitter.Status;
import winterwell.jtwitter.Twitter.User;

/*classe 
*/
public class CrawlerAmici {
	TwitterWrapper twitter;
	DBCache dbCache;
		
	public static void main(String[] args) {
		int cont=0;
		
		List<String> utenti = new LinkedList<String>();
		List<String> utentitemp = new LinkedList<String>();
		List<String> idutente = new LinkedList<String>();
		List<String> id = new LinkedList<String>();
		DBCache db;
		db = DBCache.getInstance();
		utentitemp = db.getUtenti();
		idutente = db.getIdUtentiInAmici();
		
        for(String st:utentitemp){
        	if ((cont% 2) == 0){
        		id.add(st);
        		cont++;
        		}
        	else {
        		utenti.add(st);
        		cont++;
        	}
        }
        
		for(String utn : utenti){
			System.out.println(utn);
			CrawlerAmici crwaici = new CrawlerAmici();
			crwaici.run(utn);
			}
		}
	
	
	public  CrawlerAmici() {
		twitter = TwitterFactory.getInstance().getTwitterWrapper();
		dbCache = DBCache.getInstance();
	}
	

	private void run(String nome_utente) {
		//avvio la connessione al db, il programma usa una sola connessione al db mysql
		Connector.getInstance().connetti();		
		if (nome_utente != null){
			crawluserFriend(nome_utente);
		}else
			System.out.println("Impossibile scaricare amici di " + nome_utente );
		
		//chiudo la connessione al db
		Connector.getInstance().disconnetti();

	}
	
	private void crawluserFriend(String nome_utente) {
		List<User> amici = new LinkedList<User>();
		System.out.println("inizio scanzione amici per "+nome_utente);
		amici=twitter.getFriends(nome_utente);
		System.out.println("l'utente "+nome_utente +"ha "+amici.size()+"amici");
		dbCache.inserisciAmici(nome_utente, amici);
		System.out.println("inserimento amici completato");
	
	}


}
